<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.org/ui"
      xmlns:f="http://java.sun.com/jsf/core">

    <!-- 
        <sumario>
        <objetivo>"Rastreabilidade"</objetivo>
        <autor>EDUARDO SANTOS DE OLIVEIRA</autor>
        <versao>1.0.0.0</versao>
        <data_criacao> 17.07.2013 </data_criacao>
        <data_ultima_alteracao> N/A </data_ultima_alteracao>
        <requisito_afetado> N/A </requisito_afetado>
        <descricao> Pagina de Pesquisa de Logs de Eventos do Sistema </descricao>
        </sumario>
    -->              

    <ui:composition template="/templates/interna.xhtml">

        <ui:define name="breadcrumb">

            <h:form>

                <p:breadCrumb>
                    <p:menuitem value="#{msg.gestao}"/>
                    <p:menuitem value="#{msg.LogSistema_Consultar_Registros}"/>
                </p:breadCrumb>

            </h:form>    

        </ui:define>

        <ui:define name="corpo">

            <h:form id="fDadosPesquisa">
                
                <p:ajaxStatus onstart="painelStatus.show();" onsuccess="painelStatus.hide();"/>
                
                <style>
                    .info-qtd-registros{
                        float: right !important; 
                        margin-right: 1.8em; 
                        margin-top: 7px; 
                        vertical-align: bottom;
                    }
                </style>                

                <p:fieldset id="fsDadosPrincipais" legend="#{msg.LogSistema_Dados_Pesquisa_Eventos}">

                    <h:panelGrid columns="2" cellspacing="2" cellpadding="2">

                        <p:outputLabel for="somTipoEvento" value="#{msg.LogSistema_Tipo_Evento}:"/>

                        <p:selectOneMenu id="somTipoEvento" value="#{logEventoController.parametros.tipoEvento}" style="width: 70em">
                            <f:selectItems value="#{logEventoController.listaTiposEventos}"/>
                        </p:selectOneMenu>

                        <p:outputLabel for="somUsuarios" value="#{msg.usuario}:"/>

                        <p:selectOneMenu id="somUsuarios" value="#{logEventoController.parametros.idUsuario}" style="width: 70em">
                            <f:selectItems value="#{logEventoController.listaUsuarios}"/>
                        </p:selectOneMenu>

                        <p:outputLabel for="itDescricao" value="#{msg.LogSistema_Descricao}:"/>

                        <p:inputText id="itDescricao" value="#{logEventoController.parametros.descricao}" style="width: 69.2em"/>

                        <p:outputLabel for="itDataInicial" value="#{msg.LogSistema_Intervalo}:"/>

                        <h:panelGroup>
                            
                            <p:calendar id="itDataInicial"
                                        value="#{logEventoController.parametros.dataInicial}"
                                        locale="pt_BR"
                                        pattern="#{msg.formatoPadraoData}"
                                        navigator="true"
                                        mode="popup"
                                        showOn="button"
                                        size="15"
                                        yearRange="#{logEventoController.rangeDatePicker}"
                                        onblur="this.value = validarCampoData(this.value)"
                                        onfocus="mascarar(this, '#{msg.mascaraPadraoData}')">
                                <f:convertDateTime pattern="#{msg.formatoPadraoData}"/>
                            </p:calendar>				                            
                            
                            <h:outputText value=" à "/>
                            
                            <p:calendar id="itDataFinal"
                                        value="#{logEventoController.parametros.dataFinal}"
                                        locale="pt_BR"
                                        pattern="#{msg.formatoPadraoData}"
                                        navigator="true"
                                        mode="popup"
                                        showOn="button"
                                        size="15"
                                        yearRange="#{logEventoController.rangeDatePicker}"
                                        onblur="this.value = validarCampoData(this.value)"
                                        onfocus="mascarar(this, '#{msg.mascaraPadraoData}')">
                                <f:convertDateTime pattern="#{msg.formatoPadraoData}"/>
                            </p:calendar>				                            
                            
                        </h:panelGroup>

                    </h:panelGrid>

                    <p:spacer width="5" height="20"/>

                    <p:commandButton value="#{msg.pesquisar}"
                                     action="#{logEventoController.pesquisar()}"
                                     icon="ui-icon-search"
                                     process="@form"
                                     update="@form"
                                     style="width: 13em"/>
                    
                    <p:spacer width="5"/>
                    
                    <p:commandButton value="#{msg.limparCampos}"
                                     action="#{logEventoController.limparCampos()}"
                                     icon="ui-icon-clear"
                                     update="@form"
                                     style="width: 13em"/>
                    
                    <p:spacer width="5"/>
                    
                    <p:commandButton value="#{msg.voltar}"
                                     action="#{logEventoController.voltar}"
                                     ajax="false" 
                                     icon="ui-icon-arrowreturnthick-1-w"
                                     immediate="true"
                                     style="width: 13em"/>

                    <h:outputText id="otTotalRegistros" value="#{msg.LogSistema_Total_Registros}: #{logEventoController.rowCount}" rendered="#{logEventoController.rowCount > 0}" styleClass="texto-negrito-11 info-qtd-registros"/>

                </p:fieldset>

                <div class="espacamento"/>

                <p:fieldset legend="#{msg.LogSistema_Lista_Registros_Log}"
                            rendered="#{not empty logEventoController.dataModel}">

                    <p:dataTable id="dtLogsEventos"
                                 value="#{logEventoController.dataModel}"
                                 var="logEvento"
                                 rows="#{logEventoController.registrosPorPagina}"
                                 rowsPerPageTemplate="#{logEventoController.linhasPorPagina}"
                                 paginator="true"
                                 paginatorPosition="bottom"
                                 lazy="true"
                                 emptyMessage="#{msg.nenhumRegistroEncontrado}">
                        
                        <p:column headerText="#{msg.LogSistema_Tipo_Evento}" style="width: 32%" sortBy="#{logEvento.tipoEvento}">
                            #{logEvento.tipoEventoStr}
                        </p:column>

                        <p:column headerText="#{msg.usuario}" style="width: 15%; text-align: center" sortBy="#{logEvento.usuario}">
                            #{logEvento.usuario}
                        </p:column>
                        
                        <p:column headerText="#{msg.LogSistema_Descricao}" style="width: 32%" sortBy="#{logEvento.descricao}">
                            #{logEvento.descricao}
                        </p:column>
                        
                        <p:column headerText="#{msg.LogSistema_Data_Hora}" style="width: 15%; text-align: center" sortBy="#{logEvento.dataHora}">
                            <h:outputText value="#{logEvento.dataHora}">
                                <f:convertDateTime pattern="#{msg.formatoPadraoDataHoraSeg}" locale="pt_BR" timeZone="America/Sao_Paulo"/>
                            </h:outputText>
                        </p:column>
                        
                        <p:column headerText="#{msg.acoes}" style="width: 6%; text-align: center">
                            
                            <p:commandButton icon="ui-icon-search"
                                             action="#{logEventoController.visualizarRegistro(logEvento)}"
                                             title="Visualizar Registro"
                                             disabled="#{logEvento.idRegistro eq null or logEvento.tipoEvento eq '05'}"/>
                            
                        </p:column>
                        
                        <f:facet name="footer">
                            <div align="right">
                                <p:commandButton value="#{msg.exportar}"
                                                 icon="excel"
                                                 action="#{logEventoController.exportarPesquisaXLS()}"
                                                 immediate="true"
                                                 ajax="false"/>                            
                            </div>
                        </f:facet>                                                

                    </p:dataTable>

                </p:fieldset>

            </h:form>
            
        </ui:define>

    </ui:composition>

</html>
